package com.qf.day05;

public class ArrUtils {

    /**
     * 拷贝数组的方法，把原数组中的内容拷贝到新数组中
     *
     * @param arr1 原数组
     * @param arr2 新数组
     */
    public static void copyArr(int[] arr1, int[] arr2) {
        for (int i = 0; i < arr1.length; i++) {
            arr2[i] = arr1[i];
        }
    }

    /**
     * 返回 字符串在数组中的下标
     *
     * @param arr
     * @param target
     * @return
     */
    public static int indexStringArr(String[] arr, String target) {
        for (int i = 0; i < arr.length; i++) {
            if (target.equals(arr[i])) {
                return i;
            }
        }
        // 没有找到 返回-1即可
        return -1;
    }


    /**
     * 检查 某个数是否在int数组中
     *
     * @param arr    数组
     * @param target 目标数
     * @return
     */
    public static int indexArr(int[] arr, int target) {
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == target) {
                return i;
            }
        }
        // 没有找到 返回-1即可
        return -1;
    }


    /**
     * 求数组中的元素的平均值
     * @param arr
     * @return
     */
    public static double avgArr(int[] arr) {
        double sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum / arr.length;
    }


    /**
     * 返回数组中的最小元素
     * @param arr
     * @return
     */
    public static int minArr(int[] arr){
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < min) {
                min = arr[i];
            }
        }
        return min;
    }


    /**
     * 返回int数组的最大值
     * @param arr
     * @return
     */
    public static int maxArr(int[] arr){
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        return max;
    }


    /**
     * 打印String类型的数组
     * @param arr
     */
    public static void printStringArr(String[] arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
        System.out.println("]");
    }



    /**
     * 拷贝数组
     *
     * @param arr1     原数组
     * @param oldstart 原数组的起始位置
     * @param arr2     新数组
     * @param newstart 新数组的起始位置
     * @param length   拷贝的长度
     */
    public static void copyArr(int[] arr1, int oldstart, int[] arr2, int newstart, int length) {
        for (int i = 0; i < length; i++) {
            arr2[newstart + i] = arr1[oldstart + i];
        }

    }


    public static void printIntArr(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println("]");
    }

}
